package excel

import (
	"reflect"

	"github.com/xuri/excelize/v2"
)

// 按行读取数据
func getRows(fileName string) [][]string {
	file, err := excelize.OpenFile(fileName)
	if err != nil {
		panic(err)
	}
	defer file.Close()
	rows, err := file.GetRows(file.GetSheetList()[0], excelize.Options{})
	if err != nil {
		panic(err)
	}
	return rows
}

// 初始化 标签序列 对应的 结构体字段 顺序
func InitTag2FieldIdx(v interface{}, tagKey string) map[string]int {
	u := reflect.TypeOf(v)
	numField := u.NumField()
	tag2fieldIndex := map[string]int{}
	for i := 0; i < numField; i++ {
		f := u.Field(i)
		tagValue, ok := f.Tag.Lookup(tagKey)
		if ok {
			tag2fieldIndex[tagValue] = i
		} else {
			continue
		}
	}
	return tag2fieldIndex
}